var urlParam;

var page = {};
var isSearch = false;

var searchCondition = {};
var pageX = {};
pageX.cacheKey = "m3_v5_edocStatistics_cache_key";
pageX.cacheData = {
        peivMenu : null
}

sendRegisterType = "sendRegister"
receiveRegisterType = "receiveRegister"

/********************************** 初发化方法  ***********************************/

cmp.ready(function(){
	
	urlParam = cmp.href.getParam() || {};

	//初始化返回事件
	initPageBack();
	
	cmp.i18n.init(_edocPath+"/i18n/", "EdocResources", function() {
		
		//数据缓存机制，不用每次打开刷新页面
		initInStorage();
    	
		//获取数据
		initPageData();
		
		//初始化事件
		initEvent();
		
	});
	
});

/****************************** 监听返回事件(放到最前头)  ******************************/

function initPageBack() {
    
	//监听点击设备的回退事件
    cmp.backbutton();
    cmp.backbutton.push(_goBack);
	
	cmp("header").on('tap', "#menus", _goBack);
}

function _goBack() {
    
    if(EdocUtils.getBackURL() == "weixin"){
        //返回到外层, 微信入口逻辑，因为微信没办法返回到首页，所以这样处理， 暂时不要和else分支合并
        cmp.href.closePage();
    }else {
        //返回到外层
        cmp.href.back();
    }
	cmp.storage.delete(pageX.cacheKey, true);
}

/********************************** 缓存操作  ***********************************/

function initInStorage() {
    
    
    var cacheData = cmp.storage.get(pageX.cacheKey, true);
    if(cacheData) {
        pageX.cacheData = JSON.parse(cacheData); 
        cmp.storage.delete(pageX.cacheKey, true);
    }
}

//存储状态数据
function _M3_Save_Storage() {
	cmp.storage.save(pageX.cacheKey, JSON.stringify(pageX.cacheData), true);
}

/********************************** 页面数据初始化  ***********************************/

function initPageData() {
    
    //注册缓加载
    _registLazy();
    
    if(!pageX.cacheData.peivMenu){
        
        cmp.dialog.loading();
        $s.EdocResource.edocUserPeivMenu({}, {
            success : function(result) {
                cmp.dialog.loading(false);
                //M3端公文管理增加已办和在办页签,不在rest接口中增加免得影响pc端
                var aResult = {
                   haveEdocDone:true,
                   haveEdocDoing:true
                }
                
                var _result = $.extend(result,aResult); 
                //end
                pageX.cacheData.peivMenu = _result;
                _initPervMenu(pageX.cacheData.peivMenu);
            },
            error: function(result){
                cmp.dialog.loading(false);
                EdocUtils.ajaxErrorHander(result);
            }
        });	
    }else{
        _initPervMenu(pageX.cacheData.peivMenu);
    }
}

function _initPervMenu(result){
    if(result) {
		if (pageX.cacheData.edocType == receiveRegisterType) {//收文登记簿
			page = {};
			loadData2([{}, page]);
		}else{//默认显示发文登记簿
			page = {};
			loadData([{},page]);
		}
        initHtml();
        //启动懒加载
       LazyUtil.startLazy();
    }else{
        _alert(cmp.i18n("Edoc.exception.noPermissionException"));
    }
}

/**
 * 注册缓加载
 */
function _registLazy(){
  //注册缓加载
    LazyUtil.addLazyStack({
        "code" : "lazy_load",
        "css" : [
                 _cmpPath + "/css/cmp-picker.css" + $verstion,
                 _cmpPath + "/css/cmp-search.css" + $verstion
                 ],
        "js" : [
                _cmpPath + "/js/cmp-picker.js" + $verstion,
                _cmpPath + "/js/cmp-dtPicker.js" + $verstion,
                _cmpPath + "/js/cmp-search.js" + $verstion
                ]
    });
}

function loadData(parmas){
	 cmp.listView("#sendRegister", {
	     imgCache:true,
         config: {
        	 //captionType:1,
             //height: 50,//可选，下拉状态容器高度
             onePageMaxNum:60,
             isClear: true,
             pageSize: 60,
             crumbsID : searchCondition.searchCrumbsId ? searchCondition.searchCrumbsId : "#sendRegister",
             params: parmas,
             dataFunc: function(fn,parmas,options){
            	 $s.EdocResource.listSendRegister({}, parmas, {
		    		success : function(result) {
		    			if(options.success) {
		            		options.success(result);
		            	}
		            },
		            error : function(result){
		            	//处理异常
		            	EdocUtils.ajaxErrorHander(result);
		            }
		        })
             },
             renderFunc: renderData
         },
         down: {
         	 contentprepage:cmp.i18n("Edoc.page.lable.prePage"),//上一页
             contentdown: cmp.i18n("Edoc.action.pullDownRefresh"),//可选，在下拉可刷新状态时，下拉刷新控件上显示的标题内容
             contentover: cmp.i18n("Edoc.action.loseRefresh"),//可选，在释放可刷新状态时，下拉刷新控件上显示的标题内容
             contentrefresh: cmp.i18n("Edoc.state.refreshing")//可选，正在刷新状态时，下拉刷新控件上显示的标题内容
//             callback:pulldownRefresh
         },
         up: {
         	 contentnextpage:cmp.i18n("Edoc.page.lable.nextPage"),//下一页
             contentdown: cmp.i18n("Edoc.action.loadMore"),//可选，在上拉可刷新状态时，上拉刷新控件上显示的标题内容
             contentrefresh: cmp.i18n("Edoc.state.loading"),//可选，正在加载状态时，上拉加载控件上显示的标题内容
             contentnomore: cmp.i18n("Edoc.state.noMore") //可选，请求完毕若没有更多数据时显示的提醒内容；
             //callBack:pullupRefresh
         }
     });
}

function loadData2(parmas){
	 cmp.listView("#receiveRegister", {
	     imgCache:true,
         config: {
        	 //captionType:1,
             //height: 50,//可选，下拉状态容器高度
             onePageMaxNum:60,
             isClear: true,
             pageSize: 20,
             crumbsID : searchCondition.searchCrumbsId ? searchCondition.searchCrumbsId : "#receiveRegister",
             params: parmas,
             dataFunc: function(fn,parmas,options){
            	 $s.EdocResource.listRecRegister({}, parmas, {
		    		success : function(result) {
		    			if(options.success) {
		            		options.success(result);
		            	}
		            },
		            error : function(result){
		            	//处理异常
		            	EdocUtils.ajaxErrorHander(result);
		            }
		        })
             },
             renderFunc: renderData2
         },
         down: {
         	 contentprepage:cmp.i18n("Edoc.page.lable.prePage"),//上一页
             contentdown: cmp.i18n("Edoc.action.pullDownRefresh"),//可选，在下拉可刷新状态时，下拉刷新控件上显示的标题内容
             contentover: cmp.i18n("Edoc.action.loseRefresh"),//可选，在释放可刷新状态时，下拉刷新控件上显示的标题内容
             contentrefresh: cmp.i18n("Edoc.state.refreshing")//可选，正在刷新状态时，下拉刷新控件上显示的标题内容
//             callback:pulldownRefresh
         },
         up: {
         	 contentnextpage:cmp.i18n("Edoc.page.lable.nextPage"),//下一页
             contentdown: cmp.i18n("Edoc.action.loadMore"),//可选，在上拉可刷新状态时，上拉刷新控件上显示的标题内容
             contentrefresh: cmp.i18n("Edoc.state.loading"),//可选，正在加载状态时，上拉加载控件上显示的标题内容
             contentnomore: cmp.i18n("Edoc.state.noMore") //可选，请求完毕若没有更多数据时显示的提醒内容；
             //callBack:pullupRefresh
         }
     });
}
/**
 * 加载模板数据
 * @param result
 * @param isRefresh
 * 发文登记簿
 */
function renderData(result, isRefresh) {
    var pendingTPL = $("#list_li_tpl").html();
    var html = cmp.tpl(pendingTPL, result);
    if (isRefresh || isSearch) {//是否刷新操作，刷新操作 直接覆盖数据
        $("#sendRegisterList").html(html);
        isSearch = false;
    } else {
    	var table = $("#sendRegisterList").html();
    	$("#sendRegisterList").html(table+html);
    }
    cmp.IMG.detect();
    
    setTimeout(function(){
    	cmp.listView("#sendRegister").refresh();
    }, 1000);
}
/**
 * 加载模板数据
 * @param result
 * @param isRefresh
 * 收文登记簿
 */
function renderData2(result, isRefresh) {
    var pendingTPL = $("#list_li_tpl").html();
    var html = cmp.tpl(pendingTPL, result);
    if (isRefresh || isSearch) {//是否刷新操作，刷新操作 直接覆盖数据
           $("#receiveRegisterList").html(html);
           isSearch = false;
    } else {
       	var table = $("#receiveRegisterList").html();
       	$("#receiveRegisterList").html(table+html);
    }
    cmp.IMG.detect();
       
    setTimeout(function(){
        cmp.listView("#receiveRegister").refresh();
    }, 1000);
}
/********************************** 页面布局  ***********************************/

function initHtml() {
	//国际化title标签
	document.querySelector("title").innerText=cmp.i18n("Edoc.title.edoc");
	if(pageX.cacheData.edocType) {
		toList();	
		//pageX.cacheData.edocType = null;
	}
}

function toList() {
	var edocType = pageX.cacheData.edocType;

	var tabs = _$("#listTabs").querySelectorAll(".cmp-control-item");
	for(var i = 0; i < tabs.length; i++){
		if(tabs[i].getAttribute("edocType") == edocType) {
			var classA = tabs[i].classList;
			if(!classA.contains("cmp-active")){
				classA.add("cmp-active");
			}
			var classList = _$(tabs[i].getAttribute("href")).classList;
			if(!classList.contains("cmp-active")){
				classList.add("cmp-active");
			}
		} else {
			var classA = tabs[i].classList;
			if(classA.contains("cmp-active")){
				classA.remove("cmp-active");
			}
			var classList = _$(tabs[i].getAttribute("href")).classList;
			if(classList.contains("cmp-active")){
				classList.remove("cmp-active");
			}
		}
	}
}

/********************************** 初始化控件事件  ***********************************/

function initEvent() {

	//发文登记簿
	document.getElementById("sendRegisterTab").addEventListener('tap',function (e) {
		urlParam.edocType = sendRegisterType;
		pageX.cacheData.edocType = sendRegisterType;
		_M3_Save_Storage();
         page = {};
		loadData([{},page]);
	});

	//收文登记簿
	document.getElementById("receiveRegisterTab").addEventListener('tap',function (e) {
		page.edocType = receiveRegisterType;
		pageX.cacheData.edocType = receiveRegisterType;
		_M3_Save_Storage();
        page = {};
	    loadData2([{}, page]);
	  
		
	});
	//穿透详情
	cmp("#sendRegisterList,#receiveRegister").on('tap', ".col-list-cell-info", function(e) {
		var param = {
			"affairId" : "-1",
			"summaryId" : this.getAttribute("summaryId"),
			"openFrom" : "edocStatistics"
		};
		cmp.event.trigger("beforepageredirect",document);
		//保存缓存
		_M3_Save_Storage();
		var appType = this.getAttribute("app");
		//appType由后端的subApp字段而来，1发文、2收文、3签、4交换,1234都代表新公文
		if(appType && (appType==1 || appType==2 || appType==3 ||appType == 4 )){
            var nextURL = "/html/details/summary.html";
            cmp.href.next(_edocPath + nextURL , param);
		}else if(appType && (appType == 19 || appType == 20 || appType == 21)) {
            param.openFrom="glwd";//老公文的openFrom没有edocStatistics类型，所以设置成“关联文档”类型
			param.baseObjectId=this.getAttribute("summaryId");//后台权限校验会用
			param.baseApp="4";//后台权限校验会用
			cmp.href.next(_edocPath + "/html/edocSummary.html", param);
        }else{
            //老公文不支持处理的数据类型，例如交换数据
            cmp.notification.toast(cmp.i18n("Edoc.label.text.warn1"));
        }
	});

	document.querySelector('#searchIcon').addEventListener("click",function(){
		//标题、发起人、发起时间
		var searchObj = [{type:"text",condition:"subject",text:cmp.i18n("Edoc.title.title")},
		                 {type:"text",condition:"startMemberName",text:cmp.i18n("Edoc.title.sender")},
		                 {type:"date",condition:"createDate",text:cmp.i18n("Edoc.title.sendTime")},
                         {type:"text",condition:"docMark",text:cmp.i18n("Edoc.title.docMark")}];
		cmp.search.init({
	    	id:"#searchIcon",
	        model:{                    //定义该搜索组件用于的模块及使用者的唯一标识（如：该操作人员的登录id）搜索结果会返回给开发者
	            name:"edoc",   //模块名，如："协同"，名称开发者自定义
	            id:"10041"           //模块的唯一标识：
	        },
	        items : searchObj,
	        callback:function(result){ //回调函数：会将输入的搜索条件和结果返回给开发者
	        	page = {};
	            //var id = result.id;       //返回模块的唯一标识

	            //var name = result.name;   //返回模块的名称
	            var data = result.item;   //返回的搜索相关的数据
	            var condition = data.condition;  //返回的搜索条件
	            var dataSoure = "";        //搜索输入的数据

	            var type  = data.type;       //搜索输入的数据类型有text和date两种
	            //var renderArea = data.search_result_render_area_ID;  //提供一个该搜索页面上的可渲染的区域（可使用其作为滚动的容器）
	            $("#CMP_SearchContent").hide();

	            if (type == "date") {
	            	page.textfield = result.searchKey[0];
	            	page.textfield1 = result.searchKey[1]
	            } else {
	            	page.textfield  = result.searchKey[0];
	            }
	            page.conditionKey =  condition;

	            isSearch = true;

	            var params = [{},page];

	            //查询时listview要加上crumbsId参数
            	searchCondition.searchCrumbsId = "search" + cmp.buildUUID();

				//判断当前选择的类型
            	if (pageX.cacheData.edocType == receiveRegisterType) {//收文登记簿
                    var params = [{},page];
                    loadData2(params);
            	}else {//发文登记簿
                 	var params = [{},page];
                    loadData(params);
            	}
	        }
	    });
	});
}

